// 组件通信
// props
// 1. props中的所有属性都是只读的 不要在子组件中直接进行修改 [单项数据流的要求]
// 2. props原则上几乎可以支持任意数据的传递  
//   - 简单数据类型  number string boolean  
//   - 数组 / 对象 / 函数
//   - JSX [本质 React.createElement('span')]

import React from "react"

// 子组件Son
const Son = ({ cb, child }) => {
  const changeTitle = () => {
    cb()
  }
  return (
    <div>
      this is son
      <button onClick={changeTitle}>changeTitle</button>
      {child}
    </div>
  )
}



// 父组件App
class App extends React.Component {
  render () {
    return (
      <div>
        <Son
          title="this is title"
          flag={true}
          count={100}
          list={[1, 2, 3]}
          userInfo={{ name: 'cp' }}
          cb={() => console.log(123)}
          child={<span>this is span</span>} />
      </div>
    )
  }
}


export default App